#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Processes;
namespace Cephei.QL.Pricingengines.Vanilla
{
     // <summary> 
	// ! Reference: An Approximate Formula for Pricing American Options, Journal of Derivatives Winter 1999, Ju, N.  \warning Barone-Adesi-Whaley critical commodity price calculation is used, it has not been modified to see whether the method of Ju is faster. Ju does not say how he solves the equation for the critical stock price, e.g. Newton method. He just gives the solution.  The method of BAW gives answers to the same accuracy as in Ju (1999).  \ingroup vanillaengines  \test the correctness of the returned value is tested by reproducing results available in literature.
	// </summary>
    [Guid ("B2C8417F-8ACF-4f86-BA1F-183791B90C41"),ComVisible(true)]
	public interface IJuQuadraticApproximationEngine 
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        
		 IJuQuadraticApproximationEngine Calculate {get;}
    }

    // <summary> 
	// ! Reference: An Approximate Formula for Pricing American Options, Journal of Derivatives Winter 1999, Ju, N.  \warning Barone-Adesi-Whaley critical commodity price calculation is used, it has not been modified to see whether the method of Ju is faster. Ju does not say how he solves the equation for the critical stock price, e.g. Newton method. He just gives the solution.  The method of BAW gives answers to the same accuracy as in Ju (1999).  \ingroup vanillaengines  \test the correctness of the returned value is tested by reproducing results available in literature. Factory
	// </summary>
   	[ComVisible(true)]
    public interface IJuQuadraticApproximationEngine_Factory // : Collection_Factory<IJuQuadraticApproximationEngine, ICell<IJuQuadraticApproximationEngine>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    IJuQuadraticApproximationEngine Create (Cephei.QL.Processes.IGeneralizedBlackScholesProcess process);
    }
}

